#! /usr/bin/make -f
# -*- makefile -*-
# Build rules for gcc (>= 2.95) and gcc-snapshot
# Targets found in this makefile:
#	- unpack tarballs
#	- patch sources
#	- (re)create the control file
#	- create a debian/rules.parameters file, which is included
#	  by debian/rules2
# All other targets are passed to the debian/rules2 file

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

unexport LANG LC_ALL LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC LC_MESSAGES

export NO_DOCS := no
ifneq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS)))
	export NO_DOCS = yes
endif

default: build

include debian/rules.defs
include debian/rules.unpack
include debian/rules.patch

control: $(control_dependencies)
	-mkdir -p $(stampdir)
	$(MAKE) -f debian/rules.conf $@

configure: $(configure_dependencies)
$(configure_stamp): control $(unpack_stamp) $(patch_stamp)
	$(MAKE) -f debian/rules2 $@
$(configure_dummy_stamp): control
	$(MAKE) -f debian/rules2 $@
$(configure_hppa64_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@
$(configure_neon_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@
$(configure_spu_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@

pre-build:
#ifneq ($(DEB_TARGET_ARCH),armel)
#	@echo explicitely fail the build for $(DEB_TARGET_ARCH)
#	false
#endif

build: pre-build $(build_dependencies)
$(build_stamp): $(unpack_stamp) $(patch_stamp) $(configure_stamp)
	$(MAKE) -f debian/rules2 $@
$(build_dummy_stamp): $(configure_dummy_stamp)
	$(MAKE) -f debian/rules2 $@
$(build_javadoc_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@
$(build_hppa64_stamp): $(configure_hppa64_stamp)
	$(MAKE) -f debian/rules2 $@
$(build_neon_stamp): $(configure_neon_stamp)
	$(MAKE) -f debian/rules2 $@
$(build_spu_stamp): $(configure_spu_stamp)
	$(MAKE) -f debian/rules2 $@

check: $(check_stamp)
$(check_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@

clean:
	rm -rf $(stampdir)
# remove temporary dirs used for unpacking
	rm -rf $(gcc_srcdir) $(gpc_srcdir) p $(gdc_srcdir) d
	-$(MAKE) -f debian/rules2 $@
	rm -rf $(srcdir)* $(builddir)* debian/tmp* html
	rm -f bootstrap-* first-move-stamp
	rm -f autotools_files
	rm -f debian/*.tmp
	rm -f debian/soname-cache
	find debian -name '.#*' | xargs -r rm -f
	rm -f $(series_file)*
	dh_clean

install: $(install_dependencies)
$(install_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@
$(install_snap_stamp): $(build_stamp)
	$(MAKE) -f debian/rules2 $@
$(install_dummy_stamp): $(build_dummy_stamp)
	$(MAKE) -f debian/rules2 $@
$(install_hppa64_stamp): $(build_hppa64_stamp)
	$(MAKE) -f debian/rules2 $@
$(install_neon_stamp): $(build_neon_stamp)
	$(MAKE) -f debian/rules2 $@
$(install_spu_stamp): $(build_spu_stamp)
	$(MAKE) -f debian/rules2 $@

html-docs doxygen-docs update-doxygen-docs update-ada-files xxx:
	$(MAKE) -f debian/rules2 $@

binary-indep binary-arch binary: install
	$(MAKE) -f debian/rules2 $@

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

release:
	foo=$(shell basename $(CURDIR)); \
		if [ "$$foo" != "gcc-3.4" ]; then \
			find -name CVS -o -name .cvsignore -o -name '.#*' | \
				xargs rm -rf; \
		fi

.PHONY: build clean binary-indep binary-arch binary release
